#include"shm.hpp"
#include"Log.hpp"
int main()
{
    //1.创建公共的key值
    key_t k=ftok(Path_NAME,PROJ_ID);
    assert(k!=-1);
    //Log("create key done",DEBUG)<<"sever key"<<TranstoHex(k)<<endl;
    //2.创建共享内存，
    int shmid=shmget(k,SHM_SIZE,IPC_CREAT|IPC_EXCL| 0666);
    if(shmid==-1)
    {
        perror("shmget");
        exit(1);
    }
    //3.将指定的共享资源挂接地址空间
    char* shmaddr=(char*)shmat(shmid,nullptr,0);
    sleep(10);

    //使用
    char a='a';
    for(;a<='z';a++)
    {
        snprintf(shmaddr,SHM_SIZE-1,\
        "hello serve,我是其他进程，我的pid:%d,inc:%c\n",getpid(),a);
        sleep(2);
    }
    strcpy(shmaddr,"quit");
    //4.将指定共享内存从地址空间失去关联
    int n=shmdt(shmaddr);
    assert(n!=-1);
    (void)n;

    // //5.删除共享内存,clinent 不需要删除，由服务端删除就行了
    // n=shmctl(shmid,IPC_RMID,nullptr);
    // assert(n!=-1);
    // (void)n;

    return 0;
}